04. 组合逻辑电路分析与设计
1. 组合逻辑电路基础 (Fundamentals of Combinational Logic Circuits)
组合逻辑电路的核心特征是其任意时刻的输出仅由该时刻的输入决定,不依赖于电路过去的状态。
-
关键特性: 无记忆性 (Memoryless),其逻辑功能可以表示为 。
-
与时序逻辑电路的对比:
特性 组合逻辑电路 (Combinational Logic) 时序逻辑电路 (Sequential Logic) 输出决定因素 仅当前输入 当前输入 + 电路内部状态 (记忆) 核心元件 逻辑门 (AND, OR, NOT 等) 逻辑门 + 存储元件 (触发器、锁存器) 行为描述 真值表、布尔函数 状态图、状态表 应用举例 加法器、比较器、编解码器 计数器、寄存器、有限状态机
2. 组合逻辑电路分析 (Analysis of Combinational Logic Circuits)
分析的目的是根据给定的逻辑图,确定其功能,通常以真值表或布尔函数的形式表达。
2.1. 方法一:真值表分析法 (Analysis with Truth Table)
通过逐一列举所有输入组合,推导出对应输出,最终形成真值表。
-
步骤:
- 确定有 个输入,列出所有 种输入组合。
- 为电路中的中间节点(每个逻辑门的输出)命名。
- 从最靠近输入端的门开始,逐级计算并列出每个中间节点的真值表。
- 最后,根据中间节点的值,计算最终输出的真值表。
- (可选)根据真值表,使用卡诺图等方法化简,得到最简布尔表达式,并解释电路功能。
-
用例:分析一个全加器 (Full Adder) 电路 下图是一个典型的全加器电路,输入为 ( 为低位进位),输出为 (和) 和 (向高位的进位)。
-
分析过程: 以输入
A=0, B=1, C=1为例:- 计算中间节点:
- 计算最终输出:
- 计算中间节点:
-
最终真值表:
A B C (Sum) (Carry) 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 1 1 1 1 -
结论: 通过化简可得布尔函数,这正是一位全加器的标准逻辑:
-
2.2. 方法二:布尔函数推导法 (Analysis with Boolean Function Derivation)
直接从电路图推导出输出关于输入的布尔函数表达式。
-
步骤:
- 为电路中的中间节点命名。
- 从最靠近输入端的门开始,写出各中间节点的布尔表达式。
- 将中间节点的表达式逐级代入,直到最终输出只包含输入变量。
- 化简最终的布尔表达式。
-
用例:再次分析上述全加器电路
- 定义中间变量:, ,
- 写出各级表达式:
- 代入并化简 :
- 结论: 得到的表达式与真值表法一致,确认了电路是全加器 (Full Adder)。
3. 组合逻辑电路设计 (Design of Combinational Logic Circuits)
设计是分析的逆过程:根据需求(功能描述),创建出对应的逻辑电路。
3.1. 四步设计法 (Four-Step Design Procedure)
这是一个规范化的设计流程,是设计题目的核心方法。
- 规格 (Specification):
- 明确问题需求,确定电路有多少个输入和多少个输出。
- 为输入和输出变量赋予符号。
- 形式化 (Formulation):
- 根据输入和输出之间的逻辑关系,推导出真值表或布尔函数。
- 如果输入组合存在无效或不关心的情况,标记为无关项 (Don't-Care Conditions)。
- 优化 (Optimization):
- 对每个输出函数,使用卡诺图 (K-map) 或布尔代数进行化简,得到最简的积之和 (SOP) 或和之积 (POS) 表达式。
- 利用无关项可以获得更简单的表达式。
- 逻辑图 (Logic Diagram):
- 根据优化后的布尔表达式,绘制出逻辑电路图。
- 可以考虑对表达式进行变换,以复用 (reuse) 某些逻辑门,减少硬件成本。
3.2. 设计用例:BCD 码到余 3 码转换器 (BCD-to-Excess-3 Code Converter)
-
Step 1: 规格
- 输入: 4 位 BCD 码 (代表十进制 0-9)。
- 输出: 4 位余 3 码 。
- BCD 码的输入 到 是无效的,作为无关项处理。
-
Step 2: 形式化
-
逻辑关系: 。例如,输入 (1),输出 (4)。
-
真值表 (其中
x代表无关项):十进制 A B C D w x y z 0 0 0 0 0 0 0 1 1 1 0 0 0 1 0 1 0 0 2 0 0 1 0 0 1 0 1 3 0 0 1 1 0 1 1 0 4 0 1 0 0 0 1 1 1 5 0 1 0 1 1 0 0 0 6 0 1 1 0 1 0 0 1 7 0 1 1 1 1 0 1 0 8 1 0 0 0 1 0 1 1 9 1 0 0 1 1 1 0 0 10-15 1 0 1 0 x x x x ... ... ... ... ... x x x x
-
-
Step 3: 优化
- 使用卡诺图(利用无关项
x)对 分别化简,得到: - 进一步优化 (门复用): 观察表达式,发现公共项
C+D。
- 使用卡诺图(利用无关项
-
Step 4: 逻辑图
- 根据优化后的表达式绘制电路图,其中
C+D和D'等可以被多个输出共享,从而节省逻辑门。
- 根据优化后的表达式绘制电路图,其中
4. 常用组合逻辑电路实例 (Common Combinational Logic Circuit Examples)
4.1. 等值比较器 (Equality Comparator)
- 功能: 比较两个 位二进制数 和 是否相等。
- 设计思想: 当真值表过于庞大时(例如 4 位比较器有 行),采用算法/模块化思想。
- 两个数 和 相等,当且仅当它们的每一位都对应相等。
- 实现:
- 重点: 每一位的比较 可以通过 同或门 (XNOR) 实现。当 和 相同时,XNOR 输出为 1。
- 最终的相等输出 是所有位比较结果的与 (AND)。
4.2. 数值比较器 (Magnitude Comparator)
- 功能: 比较两个 位二进制数 和 的大小关系,产生三个输出:, , 。
- 重点和难点: 核心在于理解比较大小的串行/级联逻辑。
- 设计思想:
- 相等 (A=B): 与等值比较器相同。
- 大于 (A>B): 从最高位 (Most Significant Bit, MSB) 开始比较。 成立的条件是:
- 最高位 (即 , 表达式为 )。
- 或者,最高位相等 (),并且次高位 (即 )。
- 或者,高两位都相等 (),并且 (即 )。
- 或者,高三位都相等 (),并且最低位 (即 )。
- 将以上所有条件或 (OR) 起来,得到最终表达式:
- 小于 (A<B): 逻辑与 对称,只需将 和 的角色互换。